/*
 * Controlador
 * 
 * Version 
 *
 * 29/10/2013
 * 
 * Licencia
 */
package Controlador;

import proyecto2.logica.CrearAutomata;
import proyecto2.logica.DFA;
import proyecto2.logica.NFA;


public class Controlador {
    NFA _nfa;
    NFA _automata_prueba;
          
    public Controlador() {
        try {
            CrearAutomata ca = new CrearAutomata("definicionAutomata.xml");
            _nfa = ca.getAutomata();
        } catch(Exception exc) {
            System.err.println("Error"+exc.toString());
        }
    }
    
    public void crearAutomataPrueba() {
        try {
            CrearAutomata ca = new CrearAutomata("automataPrueba.xml");
            _automata_prueba = ca.getAutomata();
        } catch(Exception exc) {
            System.err.println("Error"+exc.toString());
        }
    }

    public NFA getNFA() {
        return _nfa;
    }

    public NFA getAutomata_prueba() {
        return _automata_prueba;
    }
    
    public DFA getDFA() {
        
        if(_nfa.isDFA())
            return new DFA(_nfa.getEstados(), _nfa.getAlfabeto(), _nfa.getTransiciones(), _nfa.getInicial(),    _nfa.getFinales());// _nfa;
        else
            return _nfa.toDFA();
        
    }
    
    public boolean probarRegex(String s) {
        try {
            return _nfa.recognize(s);
        }catch(Exception exc) {
            return false;
        }
    }
    
   
    
    
}
